package com.aaa.ssm.service.impl;

import com.aaa.ssm.dao.AreaDao;
import com.aaa.ssm.entity.Area;
import com.aaa.ssm.service.AreaService;
import com.aaa.ssm.vo.TreeNode;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class AreaServiceImpl implements AreaService {
    @Resource
    private AreaDao areaDao;

    @Override
    public List<Area> queryAll() {
        return areaDao.queryAll();
    }

    @Override
    public List<Area> queryByName(String name) {
        return areaDao.queryByName(name);
    }
    //    @Override
//    public List<TreeNode> queryTreeData() {
//
//        List<TreeNode> treeNodeList = areaDao.queryAll();
//        //定义返回集合（树形数据）
//        List<TreeNode> treeNodeListResult = new ArrayList<>();
//        //判断获取菜单是否为null
//        //if(treeNodeList!=null&&treeNodeList.size()>0){
//        if(!CollectionUtils.isEmpty(treeNodeList)){ //使用spring给我们提供的判断集合是否为null
//            //循环
//            for (TreeNode treeNode : treeNodeList) {
//                //查找一级菜单（parentId=0）
//                if(treeNode.getParentId()==0){
//                    treeNodeListResult.add(treeNode);
//                    //调用查找并绑定孩子方法
//                    bindChildren(treeNode,treeNodeList);
//                }
//            }
//        }
//        return treeNodeListResult;
//    }
//
//    @Override
//    public List<TreeNode> queryTreeDataByName(String name) {
//        //根据用户编号查询该用户对应的所有菜单
//        List<TreeNode> treeNodeList = areaDao.queryByName(name);
//        //定义返回集合（树形数据）
//        List<TreeNode> treeNodeListResult = new ArrayList<>();
//        //判断获取菜单是否为null
//        //if(treeNodeList!=null&&treeNodeList.size()>0){
//        if(!CollectionUtils.isEmpty(treeNodeList)){ //使用spring给我们提供的判断集合是否为null
//            //循环
//            for (TreeNode treeNode : treeNodeList) {
//                //查找一级菜单（parentId=0）
////                if(treeNode.getParentId()==0){
//                    treeNodeListResult.add(treeNode);
//                    //调用查找并绑定孩子方法
//                    bindChildren(treeNode,treeNodeList);
////                }
//            }
//        }
//        return treeNodeListResult;
//    }
//
//    private  void bindChildren(TreeNode currentTreeNode, List<TreeNode> treeNodeList){
//        //循环所有数据
//        for (TreeNode treeNode : treeNodeList) {
//            //判断循环节的父节点id是否和当前节点的id相等
//            if(currentTreeNode.getId()==treeNode.getParentId()){
//                //获取当前节点孩子集合
//                List<TreeNode> children = currentTreeNode.getChildren();
//                //判断孩子是否为null
//                if(children==null){ //如果当前是找到的第一个孩子，肯定是null
//                    //为 null实例化对象
//                    children = new ArrayList<>();
//                }
//                //添加当前循环节点
//                children.add(treeNode);
//                //给当前节点设置孩子集合
//                currentTreeNode.setChildren(children);
//                //自己调用自己为当前循环节点再找孩子   递归
//                bindChildren(treeNode,treeNodeList);
//            }
//        }
//    }
}
